{
  let a,b,rest;
  [a,b]=[1,2];
  console.log(a,b);
}

{
  let a,b,rest;
  [a,b,...rest]=[1,2,3,4,5,6];
  console.log(a,b,rest);
}

{
  let a,b;
  ({a,b}={a:1,b:2})
  console.log(a,b);
}

{
  let a,b,c,rest;
  [a,b,c=3]=[1,2];
  console.log(a,b,c);
}

{
  let a=1;
  let b=2;
  [a,b]=[b,a];
  console.log(a,b);
}
{
  function f(){
    return [1,2]
  }
  let a,b;
  [a,b]=f();
  console.log(a,b);
}

{
  function f(){
    return [1,2,3,4,5]
  }
  //   确定接收参数数量
  let a,b,c;
  [a,,,b]=f();
  console.log(a,b);
}

{
  function f(){
    return [1,2,3,4,5]
  }
    //返回值可变长参数
  let a,b,c;
  [a,,...b]=f();
  console.log(a,b);
}

{
  let o={p:42,q:true};
  let {p,q}=o;
  console.log(p,q);
}

{
  let {a=10,b=5}={a:3};
  console.log(a,b);
}
//  模板查询
{
  let metaData={
    title:'abc',
    test:[{
      title:'test',
      desc:'description'
    }]
  }
  //  这里想一下如何使用正则来进行数据的查询，，
  //  esTitle也可以是一个函数，反正函数也是对象
  //  就类似字段名，其他的就类似字段值
  // let {title:esTitle,test:[{title:cnTitle}]}=metaData;
    // console.log(esTitle,cnTitle);
    let {title:title,test:[{title:cnTitle}]}=metaData;
    console.log(title,cnTitle);
//     吧title什么的用正则表达式括号匹配起来
//    遍历所有数据。。。你可能需要用到find函数
}
{
    let metaData={
        title:'abc',
        test:[{
            title:'test',
            desc:'description'
        }]
    }
    // 修改对象的键的名字
    let {title:cnTitle,test:[{title:cnlTitle,desc:cndesc}]}=metaData;
   let meta={cnTitle,test:[{cnlTitle,cndesc}]}
   // 避免下面这种写法
   //  let meta={
   //      cnTitle:metaData.title,
   //      test:[{
   //          cnlTitle:metaData.test[0].title,
   //          cndesc:metaData.test[0].cndesc
   //      }]
   //  }
  console.log(metaData,meta)
}



























